终极篇 C++算法到安卓的移植

您所在的位置:网站首页 android studio可以用c编写吗 终极篇 C++算法到安卓的移植

终极篇 C++算法到安卓的移植

2024-07-16 04:33| 来源: 网络整理| 查看: 265

目的:windows平台下的c++算法,需要移植到安卓系统上。平时用惯了Visual Studio,再在其他软件上重新写算法,调试算法,实在头疼。所以我用VS的c++移动开发功能创建动态共享库,将算法内容放入,并实现JNI和JAVA接口部分;最后用Android Studio调用成功。

 

吐槽微软的仿真器以及VS自带的google emulator for android,搞了很久,还是有问题,不能直接用(本着放在一起调试方便,竟然没搞出来。如果有朋友在这一块调试好了,记得发文章,还是很期待的),索性重点不在这里,干脆放弃,使用Android Studio做测试。(本来算法功能测试已经在windows平台测试的差不多了)

 

吐槽开始。。。

三周了,从未接触java,android,对于一个C++死忠粉各种没信心,只能各种查资料,找度娘,找论坛,都以为没戏了,终于给我搞成功了!!

在此特别感谢CSDN的Mr_L_Y,他对我的帮助无以言谢。这位大神贡献的资料可以查看:

VS2019 C++的跨平台开发——Android .so开发

https://blog.csdn.net/luoyu510183/article/details/94590497

VS2019 OpenCV的Windows工程到安卓的移植

https://blog.csdn.net/luoyu510183/article/details/102710080

 

其实有这两篇文章足以移植VS中创建的C++移动开发的SO库,但是想想这么久的辛苦,还是记录一下自己的成果。

(这里插一句,如果是整个大项目的移植,比如团队项目,直接参考Mr_L_Y的移植方法;如果是自己写的,源码结构比较简单的直接参考我这里的方法会更方便一点。)

 

本文使用的软件版本如下:

VisualStudio 2019 (创建c++移动开发的动态库) AndroidStudio 3.5 (调用VS创建的动态库,并在模拟器中显示结果) NDK-r16B Android SDK 21 Opencv 4.1.1(android)

 

 

第一部分:创建c++算法的so库,供安卓调用

1. 软件准备:安装Visual Studio中的“使用C++的移动开发”,不需要在可选项中选择模拟器

2. 打开VS,新建项目,选择”动态共享库(Android)“,命名为SharedObject

3. 配置opencv

由于算法中使用了opencv,具体配置可以参考文章

Visual Studio + android + opencv 跨平台生成动态库文件https://blog.csdn.net/Merria28/article/details/102517646

在这里特别讲一下配置的问题,java不需要区分debug和release,所以在附加依赖项或者库依赖项中的所有配置是一样的。需要注意的是,opencv的第三方依赖库x86_64和x86中比arm64和arm的库文件少一个libtegra_hal.a,配置的时候不要添加就可以了。

附加库目录需要指定到配置文件夹:

OpenCV-android-sdk\sdk\native\3rdparty\libs\armeabi-v7a

参考MR_L_Y的文章,使用了$(PlatformShortName)代替了具体的每种配置,但是我的编译不过,就自己手动改成



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3